local key = KEYS[1] -- 接受key值
local limit = tonumber(ARGV[1])
local interval = tonumber(ARGV[2])
local count = tonumber(redis.call("get", key) or "0")

--[[ KEYS | ARGV 全局变量注意只能用在redis里面
tonumber就是将字符串转换为数字类型
redis.call 就是调用redis的命令
incr 就是递增值
expire 就是存储过期时间
大致思路就是先读取值如果值存在并且超过限流阀则返回0表示操作频繁，否则点击一次累加一次

* 如果当前计数`count`大于限流阀值`limit`，则返回0，表示操作频繁。  
* 否则，使用`redis.call("incr", key)`增加计数器的值。  
* 接着，使用`redis.call("expire", key, interval)`设置键的过期时间为`interval`秒。这样，在`interval`秒后，键会自动从Redis中删除，从而自动重置计数器。  
* 最后返回1，表示操作成功。
 ]]
if count > limit then
    return 0
else
    redis.call("incr", key) -- lottery: 0++ 1 2 3 4 5
    redis.call("expire", key, interval) -- lottery: 0 1 2 3 4 5
    return 1
end

